package org.jeecg.modules.demo.st.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.st.entity.StStudent;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.demo.st.vo.*;

/**
 * @Description: 学生信息
 * @Author: jeecg-boot
 * @Date:   2019-10-26
 * @Version: V1.0
 */
public interface StStudentMapper extends BaseMapper<StStudent> {

    List<StudentListVo> getListByClass(@Param("classId") String classId,@Param("pageNo") Integer pageNo,@Param("pageSize") Integer pageSize);

    StStudent getStudent(@Param("stuId")  String stuId);

    List<StudentListVo> getListByFront(@Param("classId") String classId, @Param("departId") String departId,@Param("professionId")   String professionId,@Param("nationality")   String nationality,@Param("status") String status,
                                       @Param("province") String province,
                                       @Param("city") String city,
                                       @Param("area") String area,
                                       @Param("fieldTwo") String fieldTwo,
                                       @Param("face") String face,
                                       @Param("difficult") String difficult,@Param("psychological") String psychological,
                                       @Param("graduation") String graduation,@Param("single") String single,
                                       @Param("academicWarning") String academicWarning,@Param("delayedGraduation") String delayedGraduation,
                                       @Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize);

    List<NationPersonsVo> getNationPersons(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);

    List<NationPersonsVo> getFacePersons(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);

    List<NationPersonsVo> getDifficults(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);

    List<NationPersonsVo> getPsychologicals(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);

    List<NationPersonsVo> getPunishs(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);

    List<NationPersonsVo> getGraduations(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);

    List<NationPersonsVo> getSingles(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);

    List<NationPersonsVo> getAcademicWarnings(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);

    List<NationPersonsVo> getDelayedGraduations(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);

    List<NationPersonsVo> getHanPersonss(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getFewPersons(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getBirthplacePersonss(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getBirthplacesPersons(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getPartysMembers(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getPartyMemberss(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getDifficultsSituation(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getDifficultStuation(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getPsychologicalProblems(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getPsychologicalsProblem(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getSingleParentOrphans(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getSinglesParentOrphan(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getAcademicsWarnings(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getAcademicsWarning(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds);

    List<NationPersonsVo> getNationPeople(@Param("college") String college, @Param("fieldTwo") String fieldTwo, @Param("profession") String profession, @Param("stClass") String stClass);

    List<NationPersonsVo> getNationPeoples(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);

    List<NationPersonsVo> getProvincesSt(@Param("departIds") String departIds, @Param("professionIds") String professionIds, @Param("classIds") String classIds, @Param("fieldTwo") String fieldTwo);


    List<ProvinceVo> getProvincePeoples(@Param("college") String college, @Param("fieldTwo") String fieldTwo, @Param("profession") String profession, @Param("stClass") String stClass);

    List<CityVo> getCityPeoples(@Param("college") String college, @Param("fieldTwo") String fieldTwo, @Param("profession") String profession, @Param("stClass") String stClass);

    List<AreaVo> getAreaPeoples(@Param("college") String college, @Param("fieldTwo") String fieldTwo, @Param("profession") String profession, @Param("stClass") String stClass);

    List<DepartVo> getDepart();

    List<StStateJiluForAdmin> getStatus(@Param("ids") String[] ids);

    List<StStudent> updateStatuses(@Param("ids") String[] ids);

    List<String> getStatuses(@Param("ids") String[] ids);

    List<ProvincesVo> getProvinces(@Param("departs") String departs, @Param("professions") String professions, @Param("classs") String classs, @Param("fieldTwo") String fieldTwo);

    List<ProvincesVo> getCitys(@Param("departs") String departs, @Param("professions") String professions, @Param("classs") String classs,@Param("pid") String pid, @Param("fieldTwo") String fieldTwo);

    List<ProvincesVo> getAreas(@Param("departs") String departs, @Param("professions") String professions, @Param("classs") String classs,@Param("sid") String sid, @Param("fieldTwo") String fieldTwo);

    List<StatisticsVo> getStatistics(@Param("keyword") String keyword,@Param("departs") String departs,@Param("nationality") String[] nationality,@Param("fieldTwo") String[] fieldTwo,
                                     @Param("face") String[] face,@Param("punish") String[] punish,@Param("graduation") String[] graduation,
                                     @Param("single") String[] single,@Param("difficult") String[] difficult,@Param("psychological") String[] psychological,
                                     @Param("academicWarning") String[] academicWarning,@Param("delayedGraduation") String[] delayedGraduation);

    List<StStudent> getSchoolLeaverList(@Param("college") String college);

    List<DepartVo> getDepartByOrgCode(@Param("orgCode") String orgCode);
}
